Christian Tismer [Tue, 14 Feb 2023 13:46:22 +0000 (14:46 +0100)]
Python 3.12: Fix the structure of class property
There is a PySide bug in Python 3.10 already: The structure for
classproperty derives from the property structure. This was extended
in Python 3.10, already, but the type generation check was made more
exhaustive in Python 3.12 and recognized that.
This change is only for making the compiler/C API happy.
In order to use the extension field, it is necessary to do a runtime
check because of the Limited API.
Task-number: PYSIDE-2230
Change-Id: I88dcaa11589ff41852f08fa2defa5200a0dd4eb6 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
(cherry picked from commit edfd9a5ad174a48f8d7da511dc6a1c69e931a418)
Gbp-Pq: Name Python-3.12-Fix-the-structure-of-class-property.patch
Fix tests sample_privatector sample_privatedtor failing with Python 3.11.5
Remove special characters from the format string as they cause:
ValueError PyUnicode_FromFormatV() expects an ASCII-encoded format string, got a non-ASCII byte: 0xc2
Christian Tismer [Tue, 21 Jun 2022 08:22:04 +0000 (10:22 +0200)]
PyEnum: make forgiving duplicates work with Python 3.11
There was a silent change in PyEnums that turns Enum attributes
into properties. This does not harm the Python interface but
needed some change in the duplication emulation.
Furthermore, new internal enums are created with an underscore name.
The meta class was changed from EnumMeta to EnumType.
[ChangeLog][shiboken6] The new Python Enums are now compatible with Python 3.11
Christian Tismer [Tue, 21 Jun 2022 08:22:04 +0000 (10:22 +0200)]
Shiboken: Fix the oldest shiboken bug ever which shows up on Python 3.11
b7df2f1c0 "Fix signal initializer.", 18. May 2010 at 00:55
There was a `PySequence_Check` in the evaluation of some signature
function parameter processing, which should have been `PyTuple_Check`.
Since the new PyEnums are also sequences, the new optimization in
Python 3.11 changed the parameter handling in a correct way and
replaced the argument tuple by a direct single argument of an enum
type. And that is also a sequence ...
There are probably still dormant issues like this in the codebase
which gives reason to submit a task that checks all Python interface
functions for correctness.
Dmitry Shachnev [Sun, 14 Nov 2021 18:08:50 +0000 (21:08 +0300)]
Find the build directory matching the current interpreter
This is needed to allow us to run tests with all supported Python versions.
Without this patch, the latest build directory will be always picked, no
matter what the current interpreter is.
* Team upload.
* Acknowledge NMU, thanks Steve Langasek!
* New upstream release.
* Rebase patches for the new release.
* Blacklist smart_pointer test (closes: #1068078).
* Bump Standards-Version to 4.7.0, no changes needed.